class Solution
{
public:
    int findSubstringInWraproundString(string s) 
    {
        
        int n=s.size();
        //dp[i]代表以i结尾所有字串中出现在base中的次数
        vector<int>dp(n,1);
        for(int i=1;i<=n;i++)
        {
            if((s[i-1]+1==s[i])||(s[i-1]=='z'&&s[i]=='a')) dp[i]+=dp[i-1];
        }
        int hash1[26]={0};
        for(int i=0;i<n;i++)
        {
            hash1[s[i]-'a']=max(hash1[s[i]-'a'],dp[i]);
        }
        int ret=0;
        for(int i=0;i<26;i++)
        {
            ret+=hash1[i];
        }
        return ret;

    }
};